﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Drawing;
using log4net;
using System.Configuration;
using System.Globalization;
using GS1.Utilitario;
using GS1.Entidad;
using System.Windows.Forms;
using GS1.Datos;
using GS1.Negocio;

namespace MantenimientoEtiquetasRFID.Formularios
{
    public partial class frmPrincipal : Form
    {
        #region --- Variables y Propiedades ---

        private static readonly ILog log = LogManager.GetLogger(typeof(frmPrincipal));

        // Create a collection to hold all the ImpinjReader instances.
        //private ImpinjReader reader = null;
        //private Status status = null;
       
        private RFIDState estadoReader;
        private enum RFIDState
        {
            CONECTADO,
            DESCONECTADO
        }

        // Cabecera de identificacion de etiqueta
        //private string IDENTIFICADOR_CAB_ETIQUETA = "0000";

        private const string PRINCIPAL_MODULO = "CONTROL VEHÍCULO";
        private const string PRINCIPAL_SISTEMA = "Sistema de Mantenimiento";
        private const string PRINCIPAL_SISTEMA2 = "de Etiquetas RFID";
        private const string PRINCIPAL_VERSION = "Versión 1.00.00";
        #endregion

        #region --- Constructor ---
        public frmPrincipal()
        {
            InitializeComponent();
        }
        #endregion

        #region ---Eventos propios ---
        
        private void frmPrincipal_Load(object sender, EventArgs e)
        {
            cargarFormulario();
        }

        private void tbtnSalir_Click(object sender, EventArgs e)
        {
            salir();
        }
        private void tsNuevo_Click(object sender, EventArgs e)
        {
            using (frmNuevo frmNuevo = new frmNuevo())
            {
                frmNuevo.ShowDialog();
            }
   
        }

        private void tsModificar_Click(object sender, EventArgs e)
        {
            using (frmModificar frmModificar = new frmModificar())
            {
                frmModificar.ShowDialog();
            }
        }
        #endregion
        
        private void cargarFormulario()
        {
            
            using (frmLogin login = new frmLogin())
            {
                //if (login.ShowDialog() == DialogResult.Cancel)
                //{
                //    Environment.Exit(0);
                //}
                //else
                //{
                    // Estableciendo los datos de pantalla principal
                    this.lblNombreModulo.Text = Convert.ToString(ConfigurationManager.AppSettings[PRINCIPAL_MODULO]);
                    this.lblNombreSistema.Text = PRINCIPAL_SISTEMA;
                    this.lblNombreSistemab.Text = PRINCIPAL_SISTEMA2;
                    this.lblVersion.Text = PRINCIPAL_VERSION;
                //}
            }             
        }
        private string obtenerInformacion()
        {
            StringBuilder cadenaInformacion = null;
            try
            {
                if (this.estadoReader == RFIDState.DESCONECTADO)
                {
                    log.Debug("Primero debe establecer conexion con el Reader");
                    return string.Empty;
                }

                
                log.Debug(cadenaInformacion.ToString());
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }

            return cadenaInformacion.ToString();
        }

        private bool obtenerEstadoConexion()
        {
            bool conectado = false;
            try
            {
                //Status status = this.reader.QueryStatus();
                //conectado = status.IsConnected == true;
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }

            return conectado;
        }

        private bool iniciarLectura()
        {
            bool resultado = false;
            try
            {
                if (this.estadoReader == RFIDState.DESCONECTADO) { return resultado; }

               /* if (!this.reader.QueryStatus().IsSingulating)
                {
                    this.reader.Start();
                }*/

                resultado = true;
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }

            return resultado;
        }

        private bool detenerLectura()
        {
            bool resultado = false;
            try
            {
                if (this.estadoReader == RFIDState.DESCONECTADO)
                {
                    log.Debug("Primero debe establecer conexion con el Reader");
                    return resultado;
                }

               /* if (this.reader.QueryStatus().IsSingulating)
                {
                    this.reader.Stop();
                }*/

                resultado = true;

            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }

            return resultado;
        }

    
        #region --- Eventos del Reader ---
   

        #endregion

      
        
        private void salir()
        {
            Environment.Exit(0);
        }

     

      

        // Mostrando el nombre de la tienda
            //this.lblNombreTienda.Text = this.TiendaSesion.nombre;

           

    }
}
